﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;

/// <summary>
/// Summary description for CategoryDAO
/// </summary>
public class CategoryDAO
{
    private SqlConnection sqlConnection = new SqlConnection();
    public static string strCategoryName;

    public CategoryDAO()
    {
        sqlConnection.ConnectionString = "Data Source=DELL-N5110; Initial Catalog=Northwind; Integrated Security=True;";
    }

    public DataTable GetAll()
    {
        // Lấy tất cả Category, trả về dạng DataTable
        sqlConnection.Open();

        DataTable tableCategory = new DataTable();

        SqlCommand sqlCommand = new SqlCommand("usp_Category_GetAll", sqlConnection);
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        sqlDataAdapter.Fill(tableCategory);

        sqlConnection.Close();
        return tableCategory;
    }

    public DataTable GetByPrimaryKey(int categoryId)
    {
        // Lấy 1 dữ liệu
        DataTable tableCategory = new DataTable();

        SqlCommand sqlCommand = new SqlCommand("usp_Category_GetByPrimaryKey", sqlConnection);
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.Parameters.AddWithValue("@CategoryID", categoryId);
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        sqlDataAdapter.Fill(tableCategory);

        sqlConnection.Close();

        return tableCategory;
    }

    public bool Insert(int productId, string productName, int supplierID, int categoryID, string quantityPerUnit, decimal unitPrice, int unitsInStock, int unitsOnOrder, int reorderLevel, byte discontinued)
    {
        // Thêm Category, thành công thì trả về true
        // Phải có dữ liệu của Category để insert

        try
        {
            // Các câu lệnh để insert
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }


    }

    public bool Delete()
    {
        // Cập nhật Category, thành công thì trả về true
        try
        {
            // Các câu lệnh để insert
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

    public bool Update()
    {
        // Cập nhật Category, thành công thì trả về true
        try
        {
            // Các câu lệnh để insert
            sqlConnection.Open();

            DataTable tableCategory = new DataTable();


            SqlCommand sqlCommand = new SqlCommand("usp_Category_Update", sqlConnection);
            // SqlCommand sqlCommand = new SqlCommand("usp_Category_Update  CategoryName=@CategoryName, CategoryName=@CategoryName", sqlConnection);
            SqlParameter parameter = new SqlParameter("@CategoryName", SqlDbType.NVarChar);
            parameter.Value = strCategoryName;
            sqlCommand.Parameters.Add(parameter);

            // parameter = new SqlParameter("@CategoryName", SqlDbType.NVarChar);

            // sqlCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar) ;
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
            sqlDataAdapter.Fill(tableCategory);

            sqlConnection.Close();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}